Many memory systems, such as solid state drives, include both non non-volatile memory (e.g., Flash) and volatile memory (e.g., DRAM). Non-volatile memory is typically less expensive than volatile memory but has a lower performance. Accordingly, there are trade-offs when designing a memory system between performance and cost. For example, using more non-volatile memory can reduce the system's cost but may negatively impact the system's performance. So, memory systems typically have much more non-volatile memory than volatile memory and use various memory management techniques to help ensure the optimal use of the limited resource of the volatile memory (e.g., caching certain data from the non-volatile memory into the volatile memory). Additionally, a host can know that certain data should be stored in volatile memory and can store that data in volatile memory instead of non-volatile memory.
Other memory systems face similar memory trade-off problems. For example, a hybrid disc system can contain flash memory and a magnetic disc, with the flash memory being the limited resource. The controller of the memory system can use overall system statistics to decide whether to store data in the flash memory or in the magnetic disc.